/*
 * poly_basic.cpp
 *
 *  Created on: Oct 27, 2008
 *      Author: Nguyen Minh Tan
 */
#include <iostream>
using namespace std;
class Base{
public:
    void inramanhinh(){
        cout << "Base" << endl;
    }
};
class BaseA: public Base{
public:
    void inramanhinh(){
        cout << "BaseA" << endl;
    }
};
class DerivedA:public BaseA {
public:
    void inramanhinh(){
        cout << "DerivedA" << endl;
    }
};
//
class BaseB{
public:
    virtual void inramanhinh(){
        cout << "BaseB" << endl;
    }
};
class DerivedB:public BaseB {
public:
    virtual void inramanhinh(){
        cout << "DerivedB" << endl;
    }
};
/*
int main(){
    Base* deA = new DerivedA();//Do BaseA phương thức không phải virtual lên gọi inramanhinh() của lớp phía bên trái
    deA->inramanhinh();
    BaseB* deB = new DerivedB();//Do BaseB phương thức là virtual lên gọi inramanhinh() của lớp ở vế phải
    deB->inramanhinh();
    return 0;
}**/
/*
Base
DerivedB
 **/